// commom/location/location.js
const http = require('../../utils/http.js');
var app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    isLocation: true
  },
  pageLifetimes: {
    show: function() {
      this.getLocation()
    },
    hide: function() {
      // 页面被隐藏
    },
    resize: function(size) {
      // 页面尺寸变化
    }
  },
  attached: function() {
    // 在组件实例进入页面节点树时执行
   
  },
  detached: function() {
    // 在组件实例被从页面节点树移除时执行
  },
  /**
   * 组件的方法列表
   */
  methods: {

    //获取当前位置
    getLocation(){
      this.setData({
        schoolName: wx.getStorageSync('nowSchool')
      })
      wx.getLocation({
        type: 'wgs84',
        success: (res) => {
          this.setData({
            isLocation: true
          })
          const latitude = res.latitude
          const longitude = res.longitude
          // wgs84转百度坐标系
          // var ssws = this.wgs84togcj02(longitude, latitude);
          // ssws = this.gcj02tobd09(ssws[0], ssws[1]);
          // //解决定位偏移
          // var ssssss1 = ssws[1] - 0.000160
          // var ssssss2 = ssws[0] - 0.000160
          // console.log('latitude:', ssssss1.toFixed(6), 'longitude:', ssssss2.toFixed(6));
          // this.setData({
          //   latitude: ssssss1.toFixed(6),
          //   longitude: ssssss2.toFixed(6)
          // })
          this.setData({
            latitude,
            longitude
          })


          if (app.globalData.uid) {
            this.getShoolList();
          }


        },
        fail: () => {
          this.setData({
            isLocation: false
          })
        }
      })

    },

    //获取定位学校
    getShoolList() {
     
      var uid = app.globalData.uid;
      console.log(`R2003005|${uid}|2|%%|${this.data.longitude}|${this.data.latitude}`)
      http.fetchApi('procedure_t', {
        p: `R2003005|${uid}|2|%%|${this.data.longitude}|${this.data.latitude}`
      }).then(res => {
        if (res.data.code == 1) {
          console.log('R2003005')
          var schoolList = res.data.results;
          // console.log(schoolList)
          this.setData({
            schoolList
          })
          // 首页默认展示数组第一项最近学校
          if (!wx.getStorageSync('nowSchool')) {
            wx.setStorageSync('nowSchool', schoolList[0]);
            app.globalData.isCheckSchool = 1
            var pages = getCurrentPages();
            var prePage = pages[pages.length - 1];
            if (prePage.route == 'pages/FlashDelivery/FlashDelivery'){
              prePage.getGoodsList(1,0);
              app.globalData.isCheckSchool = 1
            }
          }
          this.setData({
            schoolName: wx.getStorageSync('nowSchool')
          })
        
          if(app.globalData.uid){
            this.triggerEvent('myevent', 1)
          }
  

        } else {
          // this.setData({
          //   isLocation: false
          // })
          // wx.showToast({
          //   title: '数据获取失败!',
          //   icon:'none'
          // })
        }
      })
    },

    //选择学校
    openLocation() {
      if (!app.globalData.uid || !this.data.schoolName){
        return
      }
      wx.navigateTo({
        url: '../../pages/chooseSchool/chooseSchool',
      })

    },
    //重新定位
    loactionAgain() {
      // wx.openSetting({
      //   success: (res) => {
      //     if (!res.authSetting['scope.userLocation']) {
      //       wx.authorize({
      //         scope: 'scope.userLocation',
      //         success() {

      //         },

      //       })
      //     }

      //   }
      // })
      this.getLocation();

    },

    /**
     * WGS84转GCj02
     * @param lng
     * @param lat
     * @returns {*[]}
     */

    wgs84togcj02: function(lng, lat) {
      var that = this

      var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
      var PI = 3.1415926535897932384626;
      var a = 6378245.0;
      var ee = 0.00669342162296594323;
      if (that.out_of_china(lng, lat)) {
        return [lng, lat]
      } else {
        var dlat = that.transformlat(lng - 105.0, lat - 35.0);
        var dlng = that.transformlng(lng - 105.0, lat - 35.0);
        var radlat = lat / 180.0 * PI;
        var magic = Math.sin(radlat);
        magic = 1 - ee * magic * magic;
        var sqrtmagic = Math.sqrt(magic);
        dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
        dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
        var mglat = lat + dlat;
        var mglng = lng + dlng;
        return [mglng, mglat]
      }
    },
    /**
     * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
     * 即谷歌、高德 转 百度
     * @param lng
     * @param lat
     * @returns {*[]}
     */
    gcj02tobd09: function(lng, lat) {
      var that = this
      var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
      var PI = 3.1415926535897932384626;
      var a = 6378245.0;
      var ee = 0.00669342162296594323;
      var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
      var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
      var bd_lng = z * Math.cos(theta) + 0.0065;
      var bd_lat = z * Math.sin(theta) + 0.006;
      return [bd_lng, bd_lat]
    },
    transformlat: function(lng, lat) {
      var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
      var PI = 3.1415926535897932384626;
      var a = 6378245.0;
      var ee = 0.00669342162296594323;
      var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
      ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
      ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
      ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
      return ret
    },

    transformlng: function(lng, lat) {
      var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
      var PI = 3.1415926535897932384626;
      var a = 6378245.0;
      var ee = 0.00669342162296594323;
      var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
      ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
      ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
      ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
      return ret
    },

    /**
     * 判断是否在国内，不在国内则不做偏移
     * @param lng
     * @param lat
     * @returns {boolean}
     */
    out_of_china: function(lng, lat) {
      return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
    }


  }
})